#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>
#include <stdbool.h>
#include <string.h>

void TestPrint(int* a, int n);

void InsertSort(int* a, int n);
void ShellSort(int* a, int n);

void SelectSort(int* a, int n);
void HeapSort(int* a, int n);

void BubbleSort(int* a, int n);
void QuickSort(int* a, int left, int right);
void QuickSortNonR(int* a, int begin, int end);

void MergeSort(int* a, int n);
void MergeSortNonR(int* a, int n);

void CountSort(int* a, int n);